package com.grupoconstruobras.sigo.general.enums.security;

/**
 * Enum to list all possible values for a restriction on a resource
 * permission, as defined in the permissions model for SIJYP.
 * 
 * @author ricardo.buitrago
 */
public enum Restriccion {

  CamposBien("Permite operar sobre informacion del bien, sin permitir operar sobre campos del bien"), Confidencial(
      "Permite acceder a informacion de bienes que no tengan estado confidencial"), Estado(
      "Permite operar sobre campos del bien, sin permitir operar sobre el estado del bien");

  String comment;

  private Restriccion(String comment) {
    this.comment = comment;
  }

  public String toString() {
    return name();
  }

  public boolean matches(String other) {

    try {

      Restriccion otherRestriccion = valueOf(Restriccion.class, other);
      return otherRestriccion.equals(this);

    } catch (IllegalArgumentException e) {
      return false;
    } catch (NullPointerException e) {
      return false;
    }
  }
}
